/*
               File: ProcLogin
        Description: Proc Login
             Author: GeneXus C# Generator version 10_1_5-40140
       Generated on: 2/22/2011 13:17:24.84
       Program type: Callable routine
          Main DBMS: sqlserver
*/
using System;
using System.Collections;
using GeneXus.Utils;
using GeneXus.Resources;
using GeneXus.Application;
using GeneXus.Metadata;
using System.Data;
using System.Data.SqlClient;
using GeneXus.Data;
using com.genexus;
using GeneXus.Data.ADO;
using GeneXus.Data.NTier;
using GeneXus.Data.NTier.ADO;
using System.Runtime.Remoting;
using GeneXus.WebControls;
using GeneXus.Http;
using GeneXus.Procedure;
using GeneXus.XML;
using GeneXus.Search;
using GeneXus.Encryption;
using GeneXus.Http.Client;
using System.Threading;
using System.Xml.Serialization;
using System.Data.SqlTypes;
namespace GeneXus.Programs {
   public class proclogin : GXProcedure
   {
      public proclogin( )
      {
         context = new GxContext(  );
         DataStoreUtil.LoadDataStores( context);
         dsDefault = context.GetDataStore("Default") ;
         IsMain = true;
         context.SetTheme("Fantastic");
      }

      public proclogin( IGxContext context )
      {
         this.context = context;
         IsMain = false;
         dsDefault = context.GetDataStore("Default") ;
      }

      public void release( )
      {
      }

      public void execute( String aP0_ProfesorNombreusuario ,
                           String aP1_ProfesorContrasenya ,
                           out bool aP2_exists )
      {
         this.AV9ProfesorNombreusuario = aP0_ProfesorNombreusuario;
         this.AV10ProfesorContrasenya = aP1_ProfesorContrasenya;
         this.AV8exists = false ;
         initialize();
         executePrivate();
         aP2_exists=this.AV8exists;
      }

      public bool executeUdp( String aP0_ProfesorNombreusuario ,
                              String aP1_ProfesorContrasenya )
      {
         this.AV9ProfesorNombreusuario = aP0_ProfesorNombreusuario;
         this.AV10ProfesorContrasenya = aP1_ProfesorContrasenya;
         this.AV8exists = false ;
         initialize();
         executePrivate();
         aP2_exists=this.AV8exists;
         return AV8exists ;
      }

      public void executeSubmit( String aP0_ProfesorNombreusuario ,
                                 String aP1_ProfesorContrasenya ,
                                 out bool aP2_exists )
      {
         proclogin objproclogin;
         objproclogin = new proclogin();
         objproclogin.AV9ProfesorNombreusuario = aP0_ProfesorNombreusuario;
         objproclogin.AV10ProfesorContrasenya = aP1_ProfesorContrasenya;
         objproclogin.AV8exists = false ;
         objproclogin.initialize();
         ThreadPool.QueueUserWorkItem( new WaitCallback( objproclogin.executePrivateCatch ));
         aP2_exists=this.AV8exists;
      }

      void executePrivateCatch( object stateInfo )
      {
         try
         {
            executePrivate();
         }
         catch ( Exception e )
         {
            GXUtil.SaveToEventLog( "Design", e);
            throw e ;
         }
      }

      void executePrivate( )
      {
         /* GeneXus formulas */
         /* Output device settings */
         AV8exists = false ;
         new loadcontext(context ).execute( out  AV11Context) ;
         /* Using cursor P00012 */
         pr_default.execute(0, new Object[] {AV9ProfesorNombreusuario, AV10ProfesorContrasenya});
         while ( (pr_default.getStatus(0) != 101) )
         {
            A36ProfesorContrasenya = P00012_A36ProfesorContrasenya[0] ;
            A35ProfesorNombreusuario = P00012_A35ProfesorNombreusuario[0] ;
            A18ProfesorId = P00012_A18ProfesorId[0] ;
            A19ProfesorApellidos = P00012_A19ProfesorApellidos[0] ;
            A20ProfesorNombre = P00012_A20ProfesorNombre[0] ;
            A21ProfesorNombreCompleto = A20ProfesorNombre + " " + A19ProfesorApellidos ;
            AV11Context.gxTpr_Profesornombrecompleto = A21ProfesorNombreCompleto ;
            AV11Context.gxTpr_Profesorid = A18ProfesorId ;
            AV11Context.gxTpr_Logado = true ;
            new setcontext(context ).execute(  AV11Context) ;
            AV8exists = true ;
            pr_default.readNext(0);
         }
         pr_default.close(0);
         this.cleanup();
      }

      protected void cleanup( )
      {
         CloseOpenCursors();
         if ( IsMain )
         {
            context.CloseConnections() ;
         }
         exitApplication();
      }

      protected void CloseOpenCursors( )
      {
      }

      public override void initialize( )
      {
         AV11Context = new SdtContext(context);
         scmdbuf = "" ;
         P00012_A36ProfesorContrasenya = new String[] {""} ;
         P00012_A35ProfesorNombreusuario = new String[] {""} ;
         P00012_A18ProfesorId = new short[1] ;
         P00012_A19ProfesorApellidos = new String[] {""} ;
         P00012_A20ProfesorNombre = new String[] {""} ;
         A36ProfesorContrasenya = "" ;
         A35ProfesorNombreusuario = "" ;
         A19ProfesorApellidos = "" ;
         A20ProfesorNombre = "" ;
         A21ProfesorNombreCompleto = "" ;
         pr_default = new DataStoreProvider(context, new GeneXus.Programs.proclogin__default(),
            new Object[][] {
                new Object[] {
               P00012_A36ProfesorContrasenya, P00012_A35ProfesorNombreusuario, P00012_A18ProfesorId, P00012_A19ProfesorApellidos, P00012_A20ProfesorNombre
               }
            }
         );
         /* GeneXus formulas. */
         context.Gx_err = 0 ;
      }

      private short A18ProfesorId ;
      private String scmdbuf ;
      private bool AV8exists ;
      private String AV9ProfesorNombreusuario ;
      private String AV10ProfesorContrasenya ;
      private String A36ProfesorContrasenya ;
      private String A35ProfesorNombreusuario ;
      private String A19ProfesorApellidos ;
      private String A20ProfesorNombre ;
      private String A21ProfesorNombreCompleto ;
      private IGxDataStore dsDefault ;
      private IDataStoreProvider pr_default ;
      private String[] P00012_A36ProfesorContrasenya ;
      private String[] P00012_A35ProfesorNombreusuario ;
      private short[] P00012_A18ProfesorId ;
      private String[] P00012_A19ProfesorApellidos ;
      private String[] P00012_A20ProfesorNombre ;
      private bool aP2_exists ;
      private SdtContext AV11Context ;
   }

   public class proclogin__default : DataStoreHelperBase, IDataStoreHelper
   {
      public ICursor[] getCursors( )
      {
         cursorDefinitions();
         return new Cursor[] {
          new ForEachCursor(def[0])
       };
    }

    private static CursorDef[] def;
    private void cursorDefinitions( )
    {
       if ( def == null )
       {
          Object[] prmP00012 ;
          prmP00012 = new Object[] {
          new Object[] {"@AV9ProfesorNombreusuario",SqlDbType.VarChar,30,0} ,
          new Object[] {"@AV10ProfesorContrasenya",SqlDbType.VarChar,30,0}
          } ;
          def= new CursorDef[] {
              new CursorDef("P00012", "SELECT [ProfesorContrasenya], [ProfesorNombreusuario], [ProfesorId], [ProfesorApellidos], [ProfesorNombre] FROM [Profesor] WITH (NOLOCK) WHERE ([ProfesorNombreusuario] = @AV9ProfesorNombreusuario) AND ([ProfesorContrasenya] = @AV10ProfesorContrasenya) ORDER BY [ProfesorId] ",false, GxErrorMask.GX_NOMASK | GxErrorMask.GX_MASKLOOPLOCK, false, this,prmP00012,100,0,true,false )
          };
       }
    }

    public void getResults( int cursor ,
                            IFieldGetter rslt ,
                            Object[] buf )
    {
       switch ( cursor )
       {
             case 0 :
                ((String[]) buf[0])[0] = rslt.getVarchar(1) ;
                ((String[]) buf[1])[0] = rslt.getVarchar(2) ;
                ((short[]) buf[2])[0] = rslt.getShort(3) ;
                ((String[]) buf[3])[0] = rslt.getVarchar(4) ;
                ((String[]) buf[4])[0] = rslt.getVarchar(5) ;
                break;
       }
    }

    public void setParameters( int cursor ,
                               IFieldSetter stmt ,
                               Object[] parms )
    {
       switch ( cursor )
       {
             case 0 :
                stmt.SetParameter(1, (String)parms[0]);
                stmt.SetParameter(2, (String)parms[1]);
                break;
       }
    }

 }

}
